// models/Item.js
module.exports = (sequelize, DataTypes) => {
    const Item = sequelize.define('Item', {
        id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, comment: '商品 ID' },
        title: { type: DataTypes.STRING, allowNull: false, comment: '商品标题' },
        description: { type: DataTypes.TEXT, allowNull: false, comment: '商品描述' },
        price: { type: DataTypes.FLOAT, allowNull: false, comment: '价格' },
        categoryId: { type: DataTypes.INTEGER, allowNull: false, comment: '分类 ID' },
        userId: { type: DataTypes.INTEGER, allowNull: false, comment: '发布者用户 ID' },

        status: {
            type: DataTypes.INTEGER,
            defaultValue: 1,
            comment: '商品状态',
        },
        image_urls: {
            type: DataTypes.JSON,
            allowNull: true,
            comment: '商品图片地址数组',
        },

        label_config: {
            type: DataTypes.JSON,
            allowNull: true,
            comment: '商品标签 ID 数组',
        },
        is_top: {
            type: DataTypes.INTEGER,
            defaultValue: 0,
            comment: '是否置顶',
        },
        is_face: {
            type: DataTypes.INTEGER,
            defaultValue: 0,
            comment: '是否面仪',
        },
        person_name: {
            type: DataTypes.STRING,
            allowNull: true,
            comment: '联系人',
        },
        person_phone: {
            type: DataTypes.STRING,
            allowNull: true,
            comment: '联系电话',
        }
    }, {
        tableName: 'items',
        timestamps: true, // 自动维护 createdAt、updatedAt 字段
        paranoid: true,   // 启用 deletedAt 软删除
        deletedAt: 'deletedAt', // 软删除字段重命名
        underscored: true, // 开启下划线命名风格
        charset: 'utf8mb4', // 指定字符集
        collate: 'utf8mb4_general_ci', // 使用 utf8mb4 字符集的排序规则
        comment: '商品表',
    });
    return Item;
};
